import openpyxl
import pymysql
import os

# 创建工作簿对象
workbook = openpyxl.Workbook()
# 获得默认的工作表
sheet = workbook.active
# 修改工作表的标题
sheet.title = '员工基础信息'
# 给工作表添加表头
sheet.append(('工号', '姓名', '职位', '月薪'))
# 创建连接（Connection）
conn = pymysql.connect(host='127.0.0.1', port=3306,
                       user='root', password='123456',
                       database='crud', charset='utf8mb4')

try:
    # 2. 获取游标对象（Cursor）
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        cursor.execute(
            'select `eno`, `ename`, `job`, `sal` from `tb_emp` '
        )
        # 4. 通过游标对象抓取数据
        row = cursor.fetchone()
        while row:
            print(row) # ('1', '开发部门', '南京')
            sheet.append(row)
            row = cursor.fetchone()
            print(row) # None

    # ✅ 确保输出目录存在
    output_dir = 'resources'
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)  # 递归创建目录

    # 保存工作簿
    workbook.save('resources/new_example.xlsx')
    print("✅ Excel 文件已成功导出到 resources/new_example.xlsx")

except pymysql.MySQLError as err:
    print(type(err), err)
except PermissionError as err:
    print("❌ 文件权限错误（可能被 Excel 打开或无写入权限）:", err)
except Exception as e:
    print(f"❌ 其他错误: {type(e).__name__}: {e}")
finally:
    # 5. 关闭连接释放资源
    conn.close()

